iT邦幫忙

2025 iThome 鐵人賽

DAY 16
0
DevOps

PM 的 30 日 DevOps 養成計畫 系列 第 16

打造穩固及正確的開發方法 - TDD/BDD

  • 分享至 

  • xImage
  •  

30 天挑戰終於超過一半了!!!!!(灑花)

今天繼續分享的是兩種不同的開發方式:測試驅動開發 (TDD) 與行為驅動開發 (BDD)。

測試驅動開發(TDD,Test-Driven Development)

TDD (Test-Driven Development)重視的是程式碼的底層邏輯,以開發者為中心,會照以下步驟進行不斷地循環,直到功能開發完:

  • 紅燈 🔴:在功能還沒撰寫出來之前,先寫好希望這段程式碼達成的行為。但因為程式碼還沒完成,所以自動化測試會不通過。
  • 綠燈 🟢:以最少的程式滿足前面寫出的測試腳本。
  • 重構 🔄:在維持功能的前提下,優化程式碼,讓程式碼更有效率。

TDD 的好處是在程式撰寫的初期就有嚴謹的把關,也因為每個功能都有自動化的測試,當有功能被動到的時候,測試腳本就會出現提醒,保證程式碼的底層是穩固的,所以很適合有複雜邏輯的程式碼使用,像是金融系統的數字計算、電商的庫存邏輯等、API 串接的正確性。

行為驅動開發 (BDD,Behavior-Driven Development)

BDD (Behavior-Driven Development)則是以需求為中心,可以讓技術團隊與非技術團隊可以使用同樣的語言溝通。

BDD 自動化測試腳本的方式,會以「Given-When-Then」的格式,其實很像 user story 會有的內容:

  • Given:當什麼情境時(Given I am a logged-in user...)。
  • When:當我做了什麼事(When I click on the checkout button...)
  • Then:系統會出現什麼樣的結果(Then I should be redirected to the payment page)

BDD 的好處發揮在可以跨越不同團隊的溝通,追求大家在共識上的對齊。

這兩種的開發方法,通常會結合使用,讓 Devops 的價值在開發過程中發揮更多影響。TDD 可以讓工程師在開發時,就有大量的自動化測試腳本,讓 CI/CD 跑得更順利,也與昨天提到的測試左移觀念相同。而 BDD 的方式可以讓 PM 及其他團隊在發版前,就可以提早拿到測試的流程,增加驗收速度。


上一篇
Devops 嚴謹的把關手 - 自動化測試
下一篇
上線後怎麼知道用戶有沒有遇到問題? — 監控與可觀測性(Observability)
系列文
PM 的 30 日 DevOps 養成計畫 24
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言